package com.rzcode.coinex.kernel.dao.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.rzcode.coinex.kernel.common.enums.SignStateEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 签到活动实体类，用于管理签到活动的详细信息。
 *
 * @author Bridge.Xu
 * @date 2019/5/31 10:54
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "sign")
public class Sign {

    /**
     * 唯一标识ID。
     */
    @ApiModelProperty(value = "唯一标识ID")
    private Long id;

    /**
     * 赠送的币种。
     */
    @ApiModelProperty(value = "赠送的币种")
    private Coin coin;

    /**
     * 赠送的数量。
     */
    @ApiModelProperty(value = "赠送的数量")
    private BigDecimal amount;

    /**
     * 签到活动的结束日期。
     */
    @ApiModelProperty(value = "签到活动的结束日期")
    private LocalDateTime endDate;

    /**
     * 签到活动的创建时间，自动记录。
     */
    @ApiModelProperty(value = "签到活动的创建时间，自动记录")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime creationTime;

    /**
     * 签到活动的状态，默认为进行中。
     */
    @ApiModelProperty(value = "签到活动的状态，默认为进行中")
    private SignStateEnum status = SignStateEnum.UNDERWAY;
}
